יש לי טופס שאם רושמים בו טקסט ולוחצים סובמיט אז הבקשת AJAX נשלחת עם הפרמטר של האינפוט לדף function.php, ואז אני משתמש בפרמט השלישי של $.post בשביל להדפיס את הנתונים למסך (מערכת תגובות פשוטה).
עכשיו יש לי הרבה שימושים של ajax באתר שלי, אז חשבתי במקום ליצור לכל דבר קובץ נפרד, פשוט לעשות את כל הPHP בקובץ אחד ולקרוא עם AJAX רק לחלק מהדף.
לדוגמא: יש לי 2 קודים PHP בדף function.php - הראשון:מערכת התחברות. והשני: שליחת תגובות.
וברגע שהוא מתחבר(בAJAX)אז רק החלק של הקוד PHP של התחברות יפעל זאת אומרת שאני יקבל לDATA רק את התוצאה של הקוד הזה ולא גם את הקוד של התגובות
איך לעשות את זה?
מקווה שהייתי מובן
9 תשובות
תוכל לעשות פשוט מעין ROUTING כזה לבקשות AJAX דרך קובץ מסויים .
נגיד שיהיה לך קובץ ajaxActions.php ואתה מפנה אליו פשוט איזה פעולה אתה צריך לעשות והוא כבר יבצע וישלח לך חזרה את מה שביקשת .
פשוט אתה עושה swich ל
$_GET['act']
ומחלק את הפעולות ב case
ואתה שולח איזה פקודה הוא מבצע למשל ajaxActions.php?act=login&pass=###&user
פתח דף בשם page.php וכתוב בו:
switch($_GET['ajax_request']){
case 'login':
//login code
break;
case 'something':
//something code
break;
}
?>
ואז אתה מנווט את הטופס לכתובת: page.php?ajax_request=login.
וכל פעם שתרצה להוסיף עוד קוד למשהו, פשוט אתה מוסיף עוד case :).
אני אישית היתי מוסיף ברירת מחדל של הדר עם שגיאה 404 . שונא שגולשים נכנסים לאן שהם לא צריכים ...
אני חושב שהוא מתכוון להוסיף default ב switch, שאם הcaseים לא מתקיימים,זה יעביר לדף 404.
אבל המשתמש לא יכול לשלוט בניווט, זה רק מה שכתוב בקוד, למשתמש לא מופיע ה GET בשורת כתובות למעלה. זה מיותר לדעתי.
לכן לא הבנתי מה שהוא אמר..
אבל עכשיו נראה לי שהבנתי:
אולי הוא התכוון שלעשות לתיקייה שמכילה את הסקריפטים PHP - לחסום את הגישה מהGET, כך שאם גולש יכתוב בכתובת האתר:
www.site.com/functionAjax.php
אז שהוא לא יראה את התוכן - אלא הוא יועבר ל 404.
אולי זה הייתה הכוונה של שלמה120 ...